package com.tl.spider.service.statistic;

import java.util.Date;

import com.tl.spider.config.Config;
import com.tl.spider.utils.common_utils.DateUtil;
import com.tl.spider.utils.common_utils.RedisUtil;

public class StatisticManager {
	private static RedisUtil redisUtil = RedisUtil.getInstance();

	/**
	 * 判断该数据是否在redis缓存中存在<br>
	 * 判重添加二合一
	 * 
	 * @param data
	 * @return 存在返回true,不存在返回false
	 * @date 2021年7月20日
	 * @author Antg
	 */
	public static boolean isSaved(String data) {
		if (redisUtil.sismember(Config.statistic_uniq_set_name, data)) {
			return true;
		}
		redisUtil.sadd(Config.statistic_uniq_set_name, data);
		return false;
	}

	/**
	 * 总爬取条目数的统计器
	 * 
	 * @date 2021年7月20日
	 * @author Antg
	 */
	public static void allNumCounter() {
		String key = Config.statistic_allNum_name;
		String preNum = redisUtil.get(key);
		if (preNum == null) {
			// 如果未空,要进行初始化
			redisUtil.set(key, "1");
		} else {
			redisUtil.set(key, "" + (Integer.parseInt(preNum) + 1));
		}

	}

	/**
	 * 获取爬取的总数
	 * 
	 * @return
	 * @date 2021年7月20日
	 * @author Antg
	 */
	public static int getAllNum() {
		return Integer.parseInt(redisUtil.get(Config.statistic_allNum_name));
	}

	/**
	 * 当日爬取数据条目统计器<br>
	 * 使用map结构
	 * 
	 * @date 2021年7月20日
	 * @author Antg
	 */
	public static void dayNumCounter() {
		String key = Config.statistic_date_name;
		// 将年-月-日作为field
		String field = DateUtil.format(new Date(), DateUtil.DATEFORMATDAY);
		//
		String preNum = redisUtil.hget(key, field);
		if (preNum == null) {
			// 初始化并赋值该key
			redisUtil.hset(key, field, "1");
		} else {
			redisUtil.hset(key, field, "" + (Integer.parseInt(preNum) + 1));
		}
	}

	/**
	 * 获取当日的爬取情况
	 * 
	 * @date 2021年7月20日
	 * @author Antg
	 */
	public static int getDayNum() {
		String field = DateUtil.format(new Date(), DateUtil.DATEFORMATDAY);
		return Integer.parseInt(redisUtil.hget(Config.statistic_date_name,
				field));
	}

}
